package com.example.springboot_demo01.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.springboot_demo01.dao.StudentDao;
import com.example.springboot_demo01.entity.Student;
import com.example.springboot_demo01.query.StudentQuery;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

@Service
public class StudentService {

    @Resource
    StudentDao studentDao;

    //定义待条件查询的方法
    public List<Student> getAll(StudentQuery query){
        //定义mybatis执行查询的条件
        QueryWrapper<Student>wrapper = new QueryWrapper<>();
        if (query.getName()!=null)//前端传递了name参数
            wrapper.eq("name",query.getName());//eq（）精确查询，要求关系为相等

        if (query.getNo()!=null)//前端传递了no参数
            wrapper.like("no",query.getNo());//like（）模糊查询

        //设置排序
        wrapper.orderByAsc("no");


        return studentDao.selectList(wrapper);


    }
    //定义分页查询的方法
    public Page<Student> getPage(StudentQuery query){
        //定义mybatis执行查询的条件
        QueryWrapper<Student>wrapper = new QueryWrapper<>();

        if (query.getClassId()!=null)//前端传递了班级id
            wrapper.eq("classId",query.getClassId());//eq（）精确查询，要求关系为相等

        if (query.getName()!=null)//前端传递了name参数
            wrapper.eq("name",query.getName());//eq（）精确查询，要求关系为相等

        if (query.getNo()!=null)//前端传递了no参数
            wrapper.like("no",query.getNo());//like（）模糊查询

        //设置排序
        wrapper.orderByAsc("no");

        //设置分页对象参数
        Page<Student> page=new Page<>(query.getPageNo(),query.getPageSize());
        return studentDao.selectPage(page,wrapper);
    }


    public Student getById(int id){
        return studentDao.selectById(id);
    }

    public int delete(int id){
        return studentDao.deleteById(id);
    }
}
